#pragma once
#include <memory>
#include <string>
#include <log4cpp/Category.hh>

#define LOG Server::LogManager::getInstance()

/*********************************
* Contain tracking information to file
* support: tracking debug, info, error or something else
* Date Created: 22/10/2014
**********************************/
namespace Server
{
	// tracking logger, call getInstance() method to get instance on this class
	class LogManager
	{
	private:
		// logging instance
		static std::shared_ptr<LogManager> m_pInstance;
	private:
		LogManager();
	public:
		// get instance of logging class
		static std::shared_ptr<LogManager> getInstance(); // implement singleton partern

		// get root logger
		log4cpp::Category& getLogger();

		// close logging stream
		void shutdown();
	};
}
